//package com.netty.Snoop;
//
//import io.netty.channel.ChannelHandlerContext;
//import io.netty.channel.ChannelInboundHandler;
//import io.netty.channel.SimpleChannelInboundHandler;
//import io.netty.handler.codec.http.*;
//import io.netty.util.CharsetUtil;
//
///**
// * @author shengtao
// * @Description:
// * @date 2018/09/14 13:43
// */
//public class HttpSnoopClientHandler extends SimpleChannelInboundHandler<HttpObject> {
//    @Override
//    protected void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception {
//        if (msg instanceof HttpResponse) {
//            HttpResponse response = (HttpResponse) msg;
//            System.err.println("STATUS: " + response.status());
//            System.err.println("VERSION: " + response.protocolVersion());
//            System.err.println();
//            if (!response.headers().isEmpty()) {
//                for (CharSequence name: response.headers().names()) {
//                    for (CharSequence value: response.headers().getAll(name)) {
//                        System.err.println("HEADER: " + name + " = " + value);
//                    }
//                    System.err.println();
//                }
//            }
//            if (HttpUtil.isTransferEncodingChunked(response)) {
//                System.err.println("CHUNKED CONTENT {");
//            }else {
//                System.err.println("CONTENT {");
//            }
//        }
//        if (msg instanceof HttpContent) {
//            HttpContent content = (HttpContent) msg;
//            System.err.print(content.content().toString(CharsetUtil.UTF_8));
//            System.err.flush();
//            if (content instanceof LastHttpContent){
//                System.err.println("} END OF CONTENT");
//                ctx.close();
//            }
//        }
//    }
//
//    @Override
//    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
//        cause.printStackTrace();
//        ctx.close();
//    }
//}
